package com.jsz.peini.mapper.task;

import java.util.HashMap;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;

import org.apache.ibatis.annotations.Param;

import com.jsz.peini.bean.task.TaskInfo;
import com.jsz.peini.bean.task.TaskInfoExample;
import com.jsz.peini.vo.TaskInMapSearchVo;

public interface TaskInfoMapper {

    List<LinkedHashMap<String,Object>> selectByALL(TaskInfo taskInfo);
    
    List<LinkedHashMap<String,Object>> selectTaskInfoBySort(TaskInfo taskInfo);
    
    int setTaskInfo(TaskInfo taskInfo);
    
    List<LinkedHashMap<String,Object>> getTaskInfo(TaskInfo taskInfo);
    
    int updateTaskInfo(TaskInfo taskInfo);
    
    //获取最后一次发布任务
    HashMap<String,Object> getTaskLast(String userId);
    
    //获取与我相关所有任务
    int getAllTaskCountByUserId(String userId);
    
    //获取我个人取消的任务
    int getCancelCountByUserId(String userId);
    
    List<LinkedHashMap<String,Object>> getTaskInfoByUserId(TaskInfo taskInfo);
    
    long countByExample(TaskInfoExample example);

    int deleteByPrimaryKey(Integer id);

    int insert(TaskInfo record);

    int insertSelective(TaskInfo record);

    List<TaskInfo> selectByExample(TaskInfoExample example);
    
    List<Map<String,Object>> selectMyTask(@Param("userId") String userId, @Param("type") String type, @Param("status") String status);
    
    List<Map<String,Object>> selectTasksByIds(@Param("ids") String ids);
    
    List<Map<String,Object>> selectInDistance(TaskInMapSearchVo vo);

    TaskInfo selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(TaskInfo record);

    int updateByPrimaryKey(TaskInfo record);
    
    /**
     * 上下一小时的在线任务数
     * @author Han Guohong
     * @param map
     * @return
     */
    int selectCntByBetweenTime(HashMap<String, Object> map);
    
    /**
     * 一段时间内所有在线任务数
     * @author Han Guohong
     * @param map
     * @return
     */
    int selectTodayCnt(HashMap<String, Object> map);
    
    Integer getTaskInfoNumBySellerId(Integer id);
}